import NodeDao from "../dao/NodeDao";
import ResultHelper from "../utils/ResultHelper";

interface ICreataeData {
  nickname: string
  key_chunk?: string
  reserve?: string
}

export default class NodeService {

  /**
   * 密钥块已经定义好，放在 Mysql
   */
  static async create(data: ICreataeData) {
    if (!data.nickname) {
      return ResultHelper.error('输出节点昵称')
    }

    const result = await NodeDao.create(data)

    return ResultHelper.success(result, "创建成功")
  }

  /**
   * 修改 一个节点的信息
   * @param data 
   * @returns 
   */
  static async put(id: string = '', data: ICreataeData | {} = {}) {

    if (JSON.stringify(data) === '{}') {
      return ResultHelper.error('输入修改内容')
    }

    if (!id) {
      return ResultHelper.error('没有id')
    }

    const result = await NodeDao.put(id, data)

    if (result) {
      return ResultHelper.success({}, "修改成功")
    } else {
      return ResultHelper.error("修改失败")
    }
  }

  /**
   * 删除一个节点
   * @param id 
   * @returns 
   */
  static async del(id: string = '') {
    const result = await NodeDao.del(id)
    if (result) {
      // 删除 成功
      return ResultHelper.success({}, "删除成功")
    } else {
      return ResultHelper.error("删除失败")
    }
  }

  /**
   * 分页查找 节点
   * @param page 
   * @param limit 
   * @param options 
   * @returns 
   */
  static async findByPage(page: number = 1, limit: number = 10, options = {}) {
    const offset = (page - 1) * limit

    const result = await NodeDao.findByPage(offset, limit, options)
    const a = ResultHelper.success(result)
    return a

  }

}